﻿using System;
using System.Windows.Forms;
using CuaHangMayTinh.BusinessEntities;
using CuaHangMayTinh.BusinessLogicLayer;
using CuaHangMayTinh.Utilities;

namespace CuaHangMayTinh.PresentationLayer
{
    /// <summary>
    /// form hiển thị thêm,sửa nhà cung cấp
    /// </summary>
    public partial class FormNhaCungCapThem : Form, IFormThemTV<NhaCungCapEntity>
    {
        /// <summary>
        /// chứa nội dung text lỗi
        /// </summary>
        private string Textloi = string.Empty;
        /// <summary>
        /// đối tượng nhà cung cấp
        /// </summary>
        private NhaCungCapEntity entity;

        /// <summary>
        /// phương thức khởi tạo nhà cung cấp lúc thêm
        /// </summary>
        public FormNhaCungCapThem()
        {
            InitializeComponent();
            this.Text = "Thêm mới nhà cung cấp";
        }

        /// <summary>
        /// phương thức khởi tạo nhà cung cấp lúc sửa
        /// </summary>
        /// <param name="entity"></param>
        public FormNhaCungCapThem(NhaCungCapEntity entity)
        {
            InitializeComponent();
            this.entity = entity;
            this.Text = "Cập nhật nhà cung cấp " + entity.TenNCC;
        }

        /// <summary>
        /// thêm click
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        public void btn_themmoi_click(object sender, EventArgs e)
        {
            if (CheckInput())
            {
                if (entity == null)
                {
                    NhaCungCapEntity nhaCungCapEntity = GetEntity();
                    if (NhaCungCapManager.Insert(nhaCungCapEntity, ref Textloi) > 0)
                    {
                        MessageBox.Show("Thêm thành công");
                        DialogResult = DialogResult.OK;
                    }
                    else
                    {
                        MessageBox.Show(Textloi);
                    }
                }
                else
                {
                    NhaCungCapEntity nhaCungCapEntity = GetEntity();
                    nhaCungCapEntity.MaNCC = this.entity.MaNCC;
                    if (NhaCungCapManager.UpDate(nhaCungCapEntity, ref Textloi))
                    {
                        MessageBox.Show("Cập nhật thành công!");
                        DialogResult = DialogResult.OK;
                    }
                    else
                    {
                        MessageBox.Show(Textloi);
                    }
                }
            }
        }


        /// <summary>
        /// lấy đối tượng nhà cung cấp từ form
        /// </summary>
        /// <returns></returns>
        public NhaCungCapEntity GetEntity()
        {
            NhaCungCapEntity entity = new NhaCungCapEntity()
            {
                MaNCC = 0,
                TenNCC = txt_ten.Text,
                MaSoThue = txt_masothue.Text,
                DiaChi = txt_diachi.Text,
                SoDT = txt_sdt.Text,
                Email = txt_email.Text,
                GhiChu = txt_ghichu.Text,
                TinhTrang = checkBox_hienthi.Checked
            };
            return entity;
        }

        /// <summary>
        /// bắt sự kiện của nút xóa trắng
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        public void btn_xoatrang_click(object sender, EventArgs e)
        {
            XoaTrang();
        }

        /// <summary>
        /// lấy entity lên form
        /// </summary>
        /// <param name="entity"></param>
        public void SetEntity(NhaCungCapEntity entity)
        {
            txt_diachi.Text = entity.DiaChi;
            txt_email.Text = entity.Email;
            txt_masothue.Text = entity.MaSoThue;
            txt_sdt.Text = entity.SoDT;
            txt_ten.Text = entity.TenNCC;
            txt_ghichu.Text = entity.GhiChu;
            checkBox_hienthi.Checked = entity.TinhTrang;
        }

        /// <summary>
        /// xóa các mục đã nhập trên from
        /// </summary>
        public void XoaTrang()
        {
            txt_diachi.Clear();
            txt_email.Clear();
            txt_masothue.Clear();
            txt_sdt.Clear();
            txt_ten.Clear();
            txt_ghichu.Clear();
            checkBox_hienthi.Checked = false;
        }

        /// <summary>
        /// kiểm tra đầu vào của form
        /// </summary>
        /// <returns></returns>
        public bool CheckInput()
        {
            if (StringHelper.IsNullorEmpty(txt_ten.Text))
            {
                MessageBox.Show("Bạn chưa nhập tên nhà cung cấp vào !");
                return false;
            }
            if (StringHelper.IsNullorEmpty(txt_masothue.Text))
            {
                MessageBox.Show("Bạn chưa nhập mã số thuế nhà cung cấp vào !");
                return false;
            }
            return true;
        }

        private void FormNhaCungCapThem_Load(object sender, EventArgs e)
        {
            if(entity==null)
                btn_Them.Text = "Thêm";
            else
            {
                btn_Them.Text = "Cập nhật";
                SetEntity(entity);
            }
        }
    }
}
